File sharing

ABSTRACT

A first device is configured to operate as a media transmitter or a media receiver. The first device includes a memory configured to store a playlist of media files accessible to the first device. An output circuit is configured to receive the playlist from one or more second devices. Responsive to a first media file in the playlist being stored in the first device, the first device is configured to operate as a media transmitter and control transmitting of the first media file from the first device to the one or more second devices. Responsive to the first media file not being stored in the first device, the first device is configured to transfer control of transmitting from the first device to a selected one of the second devices, and operate as a media receiver to receive the first media file from the selected one of the second devices.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present disclosure is a continuation of U.S. patent application Ser.No. 11/364,539 (now U.S. Pat. No. 8,484,178), filed on Feb. 27, 2006.The entire disclosure of the application referenced above isincorporated herein by reference.

BACKGROUND

The present invention relates generally to data communications. Moreparticularly, the present invention relates to file sharing.

SUMMARY

In general, in one aspect, the invention features an apparatuscomprising a storage device to store a media file of data; a memory; afirst control circuit to transfer portions of the media file of the datafrom the storage device to the memory; and a wireless output circuit towirelessly transmit each one of the portions of the media file of thedata over a wireless network to all of a plurality of network devicesbefore transmitting a subsequent portion of the media file of the data;and a second control circuit to limit a number of the network devicesaccording to a bandwidth of the wireless network.

In some embodiments, the second control circuit authenticates each ofthe network devices before wirelessly transmitting the portions of themedia file of the data to the respective network device. In someembodiments, to wirelessly transmit the portions of the media file ofthe data, the wireless output circuit wirelessly transmits unicastpackets of the data. Some embodiments comprise a media player comprisingthe apparatus. In some embodiments, the media player is compliant withat least one standard selected from the group consisting of IEEEstandards 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and802.20.

In general, in one aspect, the invention features a method comprisingstoring a media file of data in a storage device; transferring portionsof the media file of the data from the storage device to a memory;wirelessly transmitting each one of the portions of the media file ofthe data over a wireless network to all of a plurality of networkdevices before transmitting a subsequent portion of the media file ofthe data; and limiting a number of the network devices according to abandwidth of the wireless network.

Some embodiments comprise authenticating each of the network devicesbefore wirelessly transmitting the portions of the media file of thedata to the respective network device. In some embodiments, wirelesslytransmitting the portions of the media file of the data compriseswirelessly transmitting unicast packets of the data. In someembodiments, the method is compliant with at least one standard selectedfrom the group consisting of IEEE standards 802.11, 802.11a, 802.11b,802.11g, 802.11n, 802.16, and 802.20.

In general, in one aspect, the invention features an apparatuscomprising a storage device to store a media file of data; a memory; afirst control circuit to transfer portions of the media file of the datafrom the storage device to the memory; a wireless output circuit towirelessly transmit each one of the portions of the media file of thedata over a wireless network a consecutive plurality of times N beforetransmitting a subsequent portion of the media file of the data; and asecond control circuit to determine a value of N in accordance with abandwidth of the wireless network.

In some embodiments, to wirelessly transmit the portions of the mediafile of the data, the wireless output circuit wirelessly transmitsmulticast packets of the data. Some embodiments comprise a media playercomprising the apparatus. In some embodiments, the media player iscompliant with at least one standard selected from the group consistingof IEEE standards 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16,and 802.20.

In general, in one aspect, the invention features a method comprisingstoring a media file of data on a storage device; transferring portionsof the media file of the data from the storage device to a memory; andwirelessly transmitting each one of the portions of the media file ofthe data over a wireless network a consecutive plurality of times Nbefore transmitting a subsequent portion of the media file of the data;and determining a value of N in accordance with a bandwidth of thewireless network.

In some embodiments, wirelessly transmitting the portions of the mediafile of the data comprises wirelessly transmitting multicast packets ofthe data. In some embodiments, the method is compliant with at least onestandard selected from the group consisting of IEEE standards 802.11,802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20.

In general, in one aspect, the invention features a first devicecomprising a storage device to store a first media file of data; amemory to store a playlist comprising a first pointer to the first mediafile of the first data, and at least one second pointer to at least onesecond media file of second data stored on one or more second devices;and an output circuit to transmit the playlist and portions of the firstmedia file of the first data.

Some embodiments comprise an input circuit to receive a third pointer toa third media file of third data stored on one of the second devices;and a control circuit to add the third pointer to the playlist. Someembodiments comprise a control circuit to control the playlist; wherein,when a connection to one of the second devices is lost, the controlcircuit removes, from the playlist, the second pointers to the secondmedia files of the second data stored on the one of the second devices.Some embodiments comprise an input circuit to receive a plurality ofvotes from the second devices; and a control circuit to modify an orderof play of the pointers in the playlist according to the votes. In someembodiments, the first device acts as the master of an ad-hoc networkcomprising the first and second devices. In some embodiments, when oneof the second media files of the second data is to be played, the outputcircuit transmits a token to the second device storing the one of thesecond media files of the second data; and wherein the second devicestoring the one of the second media files of the second data becomes themaster of the ad-hoc network in response to the token. Some embodimentscomprise an authentication circuit to authenticate each of the seconddevices before transmitting the portions of the first media file of thefirst data to the respective second device. In some embodiments, theauthentication circuit limits a number of the second devices accordingto a throughput of a network connecting the first device and the seconddevices. Some embodiments comprise a media player comprising the firstdevice. In some embodiments, the media player is compliant with at leastone standard selected from the group consisting of IEEE standards802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20.

In general, in one aspect, the invention features a method for a firstdevice, the method comprising storing a first media file of data on thedevice; storing a playlist on the device, the playlist comprising afirst pointer to the first media file of the first data, and at leastone second pointer to at least one second media file of second datastored on one or more second devices; and transmitting the playlist andportions of the first media file of the first data.

Some embodiments comprise receiving a third pointer to a third mediafile of third data stored on one of the second devices; and adding thethird pointer to the playlist. Some embodiments comprise removing, fromthe playlist, the second pointers to the second media files of thesecond data stored on one of the second devices when a connection to theone of the second devices is lost. Some embodiments comprise receiving aplurality of votes from the second devices; and modifying an order ofplay of the pointers in the playlist according to the votes. Someembodiments comprise acting as the master of an ad-hoc networkcomprising the first and second devices. Some embodiments comprisetransmitting a token to the second device storing one of the secondmedia files of the second data when the one of the second media files ofthe second data is to be played; wherein the second device storing theone of the second media files of the second data becomes the master ofthe ad-hoc network in response to the token. Some embodiments compriseauthenticating each of the second devices before transmitting theportions of the first media file of the first data to the respectivesecond device. Some embodiments comprise limiting a number of the seconddevices according to a throughput of a network connecting the firstdevice and the second devices. In some embodiments, the first device iscompliant with at least one standard selected from the group consistingof IEEE standards 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16,and 802.20.

In general, in one aspect, the invention features a first devicecomprising a storage device to store a first media file of first data;an output circuit to transmit, to a second device, a first pointer tothe first media file of the first data; an input circuit to receive aplaylist and portions of a second media file of second data from thesecond device, the playlist comprising the first pointer and a secondpointer to the second media file of the second data; and a memory tostore the playlist.

In some embodiments, the input circuit receives a token when the firstmedia file of the first data is to be played; and wherein the outputcircuit transmits portions of the first media file of the first data inresponse to the token. In some embodiments, the second device acts asthe master of an ad-hoc network comprising the first and second deviceswhile transmitting the portions of the second media file of the seconddata; and wherein the first device becomes the master of the ad-hocnetwork in response to the token. Some embodiments comprise anauthentication circuit to authenticate the first device to the seconddevice. Some embodiments comprise a media player comprising the firstdevice. In some embodiments, the media player is compliant with at leastone standard selected from the group consisting of IEEE standards802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20. Someembodiments comprise a control circuit to store the portions of thesecond media file of the second data in the memory; and a digital rightsmanagement circuit to remove some of the portions of the second mediafile of the second data from the memory before the control circuitstores others of the portions of the second media file of the seconddata in the memory.

In general, in one aspect, the invention features a method for a firstdevice, the method comprising storing a first media file of first data;transmitting, to a second device, a first pointer to the first mediafile of the first data; receiving a playlist and portions of a secondmedia file of second data from the second device, the playlistcomprising the first pointer and a second pointer to the second mediafile of the second data; and storing the playlist.

Some embodiments comprise receiving a token when the first media file ofthe first data is to be played; and transmitting portions of the firstmedia file of the first data in response to the token. In someembodiments, the second device acts as the master of an ad-hoc networkcomprising the first and second devices while transmitting the portionsof the second media file of the second data, further comprising actingas the master of the ad-hoc network in response to the token. Someembodiments comprise authenticating the first device to the seconddevice. In some embodiments, the first device is compliant with at leastone standard selected from the group consisting of IEEE standards802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20. Someembodiments comprise storing the portions of the second media file ofthe second data in the first device; and removing some of the portionsof the second media file of the second data from the first device beforestoring others of the portions of the second media file of the seconddata in the first device.

In general, in one aspect, the invention features an apparatuscomprising storage device means for storing a media file of data; memorymeans for storing the data; first control means for transferringportions of the media file of the data from the storage device means tothe memory means; and wireless output means for wirelessly transmit eachone of the portions of the media file of the data over a wirelessnetwork to all of a plurality of network devices before transmitting asubsequent portion of the media file of the data; and second controlmeans for limiting a number of the network devices according to abandwidth of the wireless network.

In some embodiments, the second control means authenticates each of thenetwork devices before wirelessly transmitting the portions of the mediafile of the data to the respective network device. In some embodiments,for wirelessly transmitting the portions of the media file of the data,the wireless output means wirelessly transmits unicast packets of thedata. Some embodiments comprise a media player comprising the apparatus.In some embodiments, the media player is compliant with at least onestandard selected from the group consisting of IEEE standards 802.11,802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20.

In general, in one aspect, the invention features a computer programcomprising causing transfer of portions of a media file of data from astorage device to a memory; causing wireless transmission of each one ofthe portions of the media file of the data over a wireless network toall of a plurality of network devices before transmission of asubsequent portion of the media file of the data; and limiting a numberof the network devices according to a bandwidth of the wireless network.

Some embodiments comprise authenticating each of the network devicesbefore wirelessly transmitting the portions of the media file of thedata to the respective network device. In some embodiments, causingwireless transmission of the portions of the media file of the datacomprises causing wireless transmission of unicast packets of the data.In some embodiments, the wireless transmission is compliant with atleast one standard selected from the group consisting of IEEE standards802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20.

In general, in one aspect, the invention features an apparatuscomprising storage device means for storing a media file of data; memorymeans for storing the data; first control means for transferringportions of the media file of the data from the storage device means tothe memory means; wireless output means for wirelessly transmitting eachone of the portions of the media file of the data over a wirelessnetwork a consecutive plurality of times N before transmitting asubsequent portion of the media file of the data; and second controlmeans for determining a value of N in accordance with a bandwidth of thewireless network.

In some embodiments, for wirelessly transmitting the portions of themedia file of the data, the wireless output means wirelessly transmitsmulticast packets of the data. Some embodiments comprise a media playercomprising the apparatus. In some embodiments, the media player iscompliant with at least one standard selected from the group consistingof IEEE standards 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16,and 802.20.

In general, in one aspect, the invention features a computer programcomprising causing transfer of portions of a media file of data from astorage device to a memory; causing wireless transmission of each one ofthe portions of the media file of the data over a wireless network aconsecutive plurality of times N before transmission of a subsequentportion of the media file of the data; and determining a value of N inaccordance with a bandwidth of the wireless network.

In some embodiments, causing wireless transmission of the portions ofthe media file of the data comprises causing wireless transmission ofmulticast packets of the data. In some embodiments, the wirelesstransmission of is compliant with at least one standard selected fromthe group consisting of IEEE standards 802.11, 802.11a, 802.11b,802.11g, 802.11n, 802.16, and 802.20.

In general, in one aspect, the invention features a first devicecomprising storage means for storing a first media file of data; memorymeans for storing a playlist comprising a first pointer to the firstmedia file of the first data, and at least one second pointer to atleast one second media file of second data stored on one or more seconddevices; and output means for transmitting the playlist and portions ofthe first media file of the first data.

Some embodiments comprise input means for receiving a third pointer to athird media file of third data stored on one of the second devices; andcontrol means for adding the third pointer to the playlist. Someembodiments comprise control means for controlling the playlist;wherein, when a connection to one of the second devices is lost, thecontrol means removes, from the playlist, the second pointers to thesecond media files of the second data stored on the one of the seconddevices. Some embodiments comprise input means for receiving a pluralityof votes from the second devices; and control means for modifying anorder of play of the pointers in the playlist according to the votes. Insome embodiments, the first device acts as the master of an ad-hocnetwork comprising the first and second devices. In some embodiments,when one of the second media files of the second data is to be played,the output means transmits a token to the second device storing the oneof the second media files of the second data; and wherein the seconddevice storing the one of the second media files of the second databecomes the master of the ad-hoc network in response to the token. Someembodiments comprise means for authenticating each of the second devicesbefore transmitting the portions of the first media file of the firstdata to the respective second device. In some embodiments, the means forauthenticating limits a number of the second devices according to athroughput of a network connecting the first device and the seconddevices. Some embodiments comprise a media player comprising the firstdevice. In some embodiments, the media player is compliant with at leastone standard selected from the group consisting of IEEE standards802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20.

In general, in one aspect, the invention features a computer program fora first device, the computer program comprising storing a first mediafile of data on the first device; storing a playlist on the firstdevice, the playlist comprising a first pointer to the first media fileof the first data, and at least one second pointer to at least onesecond media file of second data stored on one or more second devices;and causing transmission of the playlist and portions of the first mediafile of the first data.

Some embodiments comprise receiving a third pointer to a third mediafile of third data stored on one of the second devices; and adding thethird pointer to the playlist. Some embodiments comprise removing, fromthe playlist, the second pointers to the second media files of thesecond data stored on one of the second devices when a connection to theone of the second devices is lost. Some embodiments comprise receiving aplurality of votes from the second devices; and modifying an order ofplay of the pointers in the playlist according to the votes. Someembodiments comprise causing the first device to act as the master of anad-hoc network comprising the first and second devices. Some embodimentscomprise causing transmission of a token to the second device storingone of the second media files of the second data when the one of thesecond media files of the second data is to be played; wherein thesecond device storing the one of the second media files of the seconddata becomes the master of the ad-hoc network in response to the token.Some embodiments comprise authenticating each of the second devicesbefore transmitting the portions of the first media file of the firstdata to the respective second device. Some embodiments comprise limitinga number of the second devices according to a throughput of a networkconnecting the first device and the second devices. In some embodiments,the first device is compliant with at least one standard selected fromthe group consisting of IEEE standards 802.11, 802.11a, 802.11b,802.11g, 802.11n, 802.16, and 802.20.

In general, in one aspect, the invention features a first devicecomprising storage means for storing a first media file of first data;output means for transmitting, to a second device, a first pointer tothe first media file of the first data; input means for receiving aplaylist and portions of a second media file of second data from thesecond device, the playlist comprising the first pointer and a secondpointer to the second media file of the second data; and memory meansfor storing the playlist.

In some embodiments, the input means receives a token when the firstmedia file of the first data is to be played; and wherein the outputmeans transmits portions of the first media file of the first data inresponse to the token. In some embodiments, the second device acts asthe master of an ad-hoc network comprising the first and second deviceswhile transmitting the portions of the second media file of the seconddata; and wherein the first device becomes the master of the ad-hocnetwork in response to the token. Some embodiments compriseauthentication means for authenticating the first device to the seconddevice. Some embodiments comprise a media player comprising the firstdevice. In some embodiments, the media player is compliant with at leastone standard selected from the group consisting of IEEE standards802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20. Someembodiments comprise control means for storing the portions of thesecond media file of the second data in the memory means; and digitalrights management means for removing some of the portions of the secondmedia file of the second data from the memory before the control meansstores others of the portions of the second media file of the seconddata in the memory means.

In general, in one aspect, the invention features a computer program fora first device, the computer program comprising storing a first mediafile of first data; causing transmission, to a second device, of a firstpointer to the first media file of the first data; receiving a playlistand portions of a second media file of second data from the seconddevice, the playlist comprising the first pointer and a second pointerto the second media file of the second data; and storing the playlist.

Some embodiments comprise receiving a token when the first media file ofthe first data is to be played; and causing transmission of portions ofthe first media file of the first data in response to the token. In someembodiments, the second device acts as the master of an ad-hoc networkcomprising the first and second devices while transmitting the portionsof the second media file of the second data, further comprising causingthe first device to act as the master of the ad-hoc network in responseto the token. Some embodiments comprise authenticating the first deviceto the second device. In some embodiments, the first device is compliantwith at least one standard selected from the group consisting of IEEEstandards 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and802.20. Some embodiments comprise storing the portions of the secondmedia file of the second data in the first device; and removing some ofthe portions of the second media file of the second data from the firstdevice before storing others of the portions of the second media file ofthe second data in the first device.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features will beapparent from the description and drawings, and from the claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 shows a multimedia radio system according to a preferredembodiment of the present invention.

FIG. 2 shows a process for the multimedia radio system of FIG. 1according to a preferred embodiment of the present invention.

FIG. 3 shows a process for transmitting the portions of the media fileof the process of FIG. 2 according to one embodiment.

FIG. 4 shows a process for transmitting the portions of the media fileof the process of FIG. 2 according to another embodiment.

FIG. 5 shows a wireless multimedia jukebox system according to apreferred embodiment of the present invention.

FIG. 6 shows a process for the multimedia jukebox system of FIG. 5according to a preferred embodiment of the present invention.

FIGS. 7A-7E show various exemplary implementations of the presentinvention.

The leading digit(s) of each reference numeral used in thisspecification indicates the number of the drawing in which the referencenumeral first appears.

DESCRIPTION

Embodiments of the present invention provide apparatus, methods, andcomputer programs for wireless file sharing.

FIG. 1 shows a multimedia radio system 100 according to a preferredembodiment of the present invention. While in the following description,multimedia radio system 100 is described as a wireless system, in otherembodiments multimedia radio system 100 is a wired system,

System 100 comprises a wireless device 102 that acts as a multimediaradio transmitter and one or more wireless devices 104A-N that act asmultimedia radio receivers. Preferably wireless devices 102 and 104connect over a network 106, although this is not required. Network 106is preferably a Wireless Local Area Network (WLAN), and wireless devices102 and 104 are preferably compliant with one or more of IEEE standards802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20.

Wireless device 102 preferably comprises a storage device 108 to storeat least one media file of data, a memory 110, a control circuit 112 totransfer the media files from storage device 108 to memory 110, and awireless output circuit 114 to wirelessly transmit the media files,preferably to network 106. Wireless device 102 optionally comprises adecoding circuit 116, an authentication circuit 118, and an encryptioncircuit 120. Wireless devices 104 preferably include similar elements.

Wireless devices 102 and 104 can be implemented as media players. Insuch embodiments wireless device 102 comprises a digital-to-analogconverter (DAC) 122, an output circuit 124, and an optional outputdevice 126. Wireless devices 104 preferably include similar elements.

The data in the media files can represent images, text, video, audio,and the like, for transfer as files or by streaming. Storage device 108can be implemented as a hard disk drive or the like. Memory 110 can beimplemented as random access memory (RAM) or the like. Output circuit124 can be implemented as a headset interface, a display interface, andthe like. Output device 126 can be implemented as a headset, a display,and the like.

FIG. 2 shows a process 200 for multimedia radio system 100 of FIG. 1according to a preferred embodiment of the present invention. In someembodiments, multimedia radio system 100 is organized as an exclusiveclub. In such embodiments, a multimedia radio receiver 104 mustauthenticate itself to multimedia radio transmitter 102 before receivingtransmissions of the media files stored on storage device 108 ofmultimedia radio transmitter 102. In such embodiments, authenticationcircuit 118 of multimedia radio transmitter 102 authenticates eachmultimedia radio receiver 104 (step 202) before transmitting theportions of the media files of the data to that multimedia radioreceiver 104.

In some embodiments the number of multimedia radio receivers 104 islimited to a maximum number. In such embodiments, authentication circuit118 of multimedia radio transmitter 102 limits the number of multimediaradio receivers 104 in the club, for example by refusing to authenticatea multimedia radio receiver 104 when the number of multimedia radioreceivers 104 in the club has reached the maximum number. The maximumnumber can be predetermined or dynamically calculated, for example basedon a throughput of wireless network 106, a transmit data rate ofwireless output circuit 114, and the like.

Control circuit 112 transfers portions of one of the media files fromstorage device 108 to memory 110 (step 204). Each portion is preferablya small part of the media file so that many portions must be transferredto transfer the entire media file from storage device 108 to memory 110.For streaming media, the portions are transferred sequentially.

In some embodiments, the data in the media file is encoded, for examplefor compression purposes. For example, media files of audio data may beencoded according to MP3 formats and the like, media files of video datamay be encoded according to MPEG standards and the like, and so on. Inthese embodiments, decoding circuit 116 decodes each portion of themedia files (step 206), either before or after transfer to memory 110.

In some embodiments, the transmissions of wireless output circuit 114are encrypted, for example according to Wired Equivalent Privacy (WEP),Wi-Fi Protected Access (WPA and WPA2), and the like. In suchembodiments, encryption circuit 120 encrypts each portion of the mediafile before transmission (step 208).

Wireless output circuit 114 transmits the portions of the media file(step 210), for example as described in detail below. In embodimentswhere wireless device 102 is implemented as a media player, optionaldigital-to-analog converter 122 converts the data in the portions of themedia file to an analog signal (step 212), and optional output circuit124 outputs the analog signal (step 214). In some embodiments, anoptional output device 126 renders the analog signal (step 216), forexample by producing sounds, images, video, and the like based on theanalog signal.

FIG. 3 shows a process 300 for transmitting the portions of the mediafile of process 200 of FIG. 2 according to one embodiment. Referring toFIG. 3, process 300 selects a portion of the media file for transmission(step 302), and selects one of the multimedia radio receivers 104 toreceive the selected portion (step 304). Process 300 then transmits theselected portion over wireless network 106 to the selected multimediaradio receiver 104 (step 306), preferably as one or more unicastpackets. Then if any of the multimedia radio receivers 104 have notreceived the selected portion (step 308), process 300 selects one ofthose multimedia radio receivers 104 (step 310) and then transmits theselected portion to the selected multimedia radio receiver 104 (resumingat step 306). Preferably optional authentication circuit 118 ofmultimedia radio transmitter 102 limits the number of multimedia radioreceivers 104 that receive the portions of the media file, for exampleaccording to a bandwidth of wireless network 106, a transmit data rateof wireless output circuit 114, and the like.

When the selected portion of the media file has been successfullytransmitted to all of the multimedia radio receivers 104 (step 308), andif portions of the media file remain to be transmitted (step 312),process 300 selects one of those portions of the media file fortransmission (step 316) and then transmits the selected portion to theselected multimedia radio receiver 104 (resuming at step 306). When allof the portions of the media file have been transmitted (step 314),process 300 is done (step 318).

FIG. 4 shows a process 400 for transmitting the portions of the mediafile of process 200 of FIG. 2 according to another embodiment. Referringto FIG. 4, process 400 selects a portion of the media file fortransmission (step 402). Process 400 then transmits the selected portionover wireless network 106 a consecutive plurality of times N (step 404),preferably as one or more multicast packets. Preferably optionalauthentication circuit 118 determines the value of N in accordance withthe bandwidth of wireless network 106.

If portions of the media file remain to be transmitted (step 406),process 400 selects one of those portions of the media file fortransmission (step 408) and transmits the selected portion apredetermined consecutive plurality of times N (resuming at step 404).When all of the portions of the media file have been transmitted (step406), process 400 is done (step 410).

FIG. 5 shows a wireless multimedia jukebox system 500 according to apreferred embodiment of the present invention. System 500 comprises aplurality of wireless devices 502A-N that take turns acting as a mediatransmitter, while the other wireless devices 502 act as mediareceivers, in order to share media files stored on the wireless devices502.

Preferably wireless devices 502 connect over a network 506, althoughthis is not required. Network 506 is preferably a Wireless Local AreaNetwork (WLAN), and wireless devices 502 are preferably compliant withone or more of IEEE standards 802.11, 802.11a, 802.11b, 802.11g,802.11n, 802.16, and 802.20.

For clarity of explanation, FIG. 5 shows details of only wirelessdevices 502A and 502B. Each wireless device 502A,B preferably comprisesa storage device 508A,B to store media files of data, a memory 510A,B tostore a playlist, a control circuit 512 A,B, and a wireless outputcircuit 514A,B to wirelessly transmit the media files, preferably tonetwork 506. Each wireless media player 502 optionally comprises adecoding circuit 516A,B and an authentication circuit 518A,B, whichfunction for example as described above. Each wireless media player 502optionally comprises a security circuit 520A,B to encrypt transmitteddata and decrypt received data.

Wireless devices 502 can be implemented as media players, and arereferred to as such in the following discussion. In such embodimentseach wireless media player 502A,B comprises a digital-to-analogconverter 522A,B, an output circuit 524A,B, and an optional outputdevice 526A,B, which function, for example, as described above. Eachwireless devices 502 also preferably comprises an optional digitalrights management (DRM) circuit 528A,B to implement one or more DRMtechniques.

The data in the media files can represent images, text, video, audio,and the like, for transfer as files or by streaming. Storage devices 508can be implemented as hard disk drives or the like. Memories 510 can beimplemented as random access memories (RAM) or the like. Output circuits524 can be implemented as headset interfaces, display interfaces, andthe like. Output devices 526 can be implemented as headsets, displays,and the like.

FIG. 6 shows a process 600 for multimedia jukebox system 500 of FIG. 5according to a preferred embodiment of the present invention. Process600 selects one of wireless media players 502 to act initially as themedia transmitter (step 602). Preferably wireless media players 502 forman ad-hoc network 506, and the wireless media player 502 that isselected as the master of the ad-hoc network 506 is also selected to actas the media transmitter. However, the selection process can take anyform. For clarity of explanation, assume that wireless media player 502Ais initially selected as the media transmitter.

In some embodiments, multimedia jukebox system 500 is organized as anexclusive club. In such embodiments, each media receiver 502B-N mustauthenticate itself to media transmitter 502A before receivingtransmissions of media files from the media transmitter 502A. In suchembodiments, authentication circuit 518A of wireless media player 502Aauthenticates each media receiver 502B-N before transmitting portions ofthe media files to wireless media player 502A (step 604).

In some embodiments the number of wireless media players 502 inmultimedia jukebox system 500 is limited to a maximum number. In suchembodiments, authentication circuit 518A of media transmitter 502Alimits the number of wireless media players 502 in the club, for exampleby refusing to authenticate a wireless media player 502 when the numberof wireless media players 502 in the club has reached the maximumnumber. The maximum number can be predetermined or dynamicallycalculated, for example based on a throughput of wireless network 506, atransmit data rate of wireless output circuit 514A, and the like.

Storage devices 508 store media files. Media receivers 502B-N informmedia transmitter 502A of the media files stored on their storagedevices 508B-N that are available for sharing, for example bytransmitting pointers to the media files to media transmitter 502A (step606).

Media transmitter 502A assembles the playlist in memory 510A of themedia files that are available for sharing by wireless media players 502(step 608). The playlist comprises pointers to the media files stored onmedia transmitter 502A, and stored on media receivers 502B-N, that areavailable for sharing. The playlist also preferably comprises metadatafor each media file such as media type, format, title, duration,performer, and the like. Wireless output circuit 514A of mediatransmitter 502A wirelessly transmits the playlist (step 610). Mediareceivers 502B-N store the playlist in memories 510, and preferablydisplay playlist on output devices 526.

The playlist can be modified at any time. For example, when a newwireless media player 502 joins wireless multimedia jukebox system 500,the media files available for sharing by new wireless media player 502are preferably added to the playlist as described above. As anotherexample, when a wireless media player 502 leaves wireless multimediajukebox system 500, for example when a wireless connection with thatwireless media player 502 is lost, the media files available for sharingby that wireless media player 502 are preferably removed from theplaylist. As a further example, wireless media players can makepreviously unavailable files available, and can make previouslyavailable files unavailable, for sharing.

In addition, the order of play of media files in the playlist can bemodified, for example according to a voting scheme where users can usewireless media players 502 to vote for media files. Control circuit 512Aof media transmitter 502A then modifies the order of play according tothe votes.

Control circuit 512A of wireless media player 502A selects the firstmedia file in the playlist (step 612). If the selected media file islocal (step 614), that is, stored on storage device 508A of mediatransmitter 502A, then wireless output circuit 514A of media transmitter502A transmits the selected media file (step 616), for example accordingto the techniques described above. Control circuit 512A of wirelessmedia player 502A then selects the next media file in the playlist(resuming at step 612).

However, when the selected media file is not local, that is, stored onone of media receivers 502B-N, for example on media receiver 502B, mediatransmitter 502A transfers control of wireless multimedia jukebox system500 to that media receiver 502B (step 618). Wireless media player 502Bthereby becomes the media transmitter, while wireless media player 502Abecomes a media receiver. Wireless media player 502B also preferablybecomes the master of ad-hoc network 506 at the same time, for exampleby receiving a token from wireless media player 502A. Wireless device502B then assembles the playlist (resuming at step 608), with wirelessmedia player 502B now acting as the media transmitter and wireless mediaplayer 502A now acting as a media receiver.

In some embodiments, optional DRM circuit 528 implements one or more DRMtechniques as the portions of the media file are received. For example,DRM circuit 528 removes some of the portions of a received media filefrom memory 510 before other portions of the media file are received andstored in memory 510, thereby ensuring that memory 510 never containsthe entire media file.

FIGS. 7A-7E show various exemplary implementations of the presentinvention. Referring now to FIG. 7A, the present invention can beimplemented in a high definition television (HDTV) 712. The presentinvention may implement either or both signal processing and/or controlcircuits, which are generally identified in FIG. 7A at 713, a WLANinterface and/or mass data storage of the HDTV 712. The HDTV 712receives HDTV input signals in either a wired or wireless format andgenerates HDTV output signals for a display 714. In someimplementations, signal processing circuit and/or control circuit 713and/or other circuits (not shown) of the HDTV 712 may process data,perform coding and/or encryption, perform calculations, format dataand/or perform any other type of HDTV processing that may be required.

The HDTV 712 may communicate with mass data storage 715 that stores datain a nonvolatile manner such as optical and/or magnetic storage devices.The HDD may be a mini HDD that includes one or more platters having adiameter that is smaller than approximately 1.8″. The HDTV 712 may beconnected to memory 716 such as RAM, ROM, low latency nonvolatile memorysuch as flash memory and/or other suitable electronic data storage. TheHDTV 712 also may support connections with a WLAN via a WLAN networkinterface 717.

Referring now to FIG. 7B, the present invention implements a controlsystem of a vehicle 718, a WLAN interface and/or mass data storage ofthe vehicle control system. In some implementations, the presentinvention implements a powertrain control system 719 that receivesinputs from one or more sensors such as temperature sensors, pressuresensors, rotational sensors, airflow sensors and/or any other suitablesensors and/or that generates one or more output control signals such asengine operating parameters, transmission operating parameters, and/orother control signals.

The present invention may also be implemented in other control systems722 of the vehicle 718. The control system 722 may likewise receivesignals from input sensors 723 and/or output control signals to one ormore output devices 724. In some implementations, the control system 722may be part of an anti-lock braking system (ABS), a navigation system, atelematics system, a vehicle telematics system, a lane departure system,an adaptive cruise control system, a vehicle entertainment system suchas a stereo, DVD, compact disc and the like. Still other implementationsare contemplated.

The powertrain control system 719 may communicate with mass data storage725 that stores data in a nonvolatile manner. The mass data storage 725may include optical and/or magnetic storage devices for example harddisk drives HDD and/or DVDs. The HDD may be a mini HDD that includes oneor more platters having a diameter that is smaller than approximately1.8″. The powertrain control system 719 may be connected to memory 726such as RAM, ROM, low latency nonvolatile memory such as flash memoryand/or other suitable electronic data storage. The powertrain controlsystem 719 also may support connections with a WLAN via a WLAN networkinterface 727. The control system 722 may also include mass datastorage, memory and/or a WLAN interface (all not shown).

Referring now to FIG. 7C, the present invention can be implemented in acellular phone 728 that may include a cellular antenna 729. The presentinvention may implement either or both signal processing and/or controlcircuits, which are generally identified in FIG. 7C at 730, a WLANinterface and/or mass data storage of the cellular phone 728. In someimplementations, the cellular phone 728 includes a microphone 731, anaudio output 732 such as a speaker and/or audio output jack, a display733 and/or an input device 734 such as a keypad, pointing device, voiceactuation and/or other input device. The signal processing and/orcontrol circuits 730 and/or other circuits (not shown) in the cellularphone 728 may process data, perform coding and/or encryption, performcalculations, format data and/or perform other cellular phone functions.

The cellular phone 728 may communicate with mass data storage 735 thatstores data in a nonvolatile manner such as optical and/or magneticstorage devices for example hard disk drives HDD and/or DVDs. The HDDmay be a mini HDD that includes one or more platters having a diameterthat is smaller than approximately 1.8″. The cellular phone 728 may beconnected to memory 736 such as RAM, ROM, low latency nonvolatile memorysuch as flash memory and/or other suitable electronic data storage. Thecellular phone 728 also may support connections with a WLAN via a WLANnetwork interface 737.

Referring now to FIG. 7D, the present invention can be implemented in aset top box 738. The present invention may implement either or bothsignal processing and/or control circuits, which are generallyidentified in FIG. 7D at 739, a WLAN interface and/or mass data storageof the set top box 738. The set top box 738 receives signals from asource such as a broadband source and outputs standard and/or highdefinition audio/video signals suitable for a display 740 such as atelevision and/or monitor and/or other video and/or audio outputdevices. The signal processing and/or control circuits 739 and/or othercircuits (not shown) of the set top box 738 may process data, performcoding and/or encryption, perform calculations, format data and/orperform any other set top box function.

The set top box 738 may communicate with mass data storage 743 thatstores data in a nonvolatile manner. The mass data storage 743 mayinclude optical and/or magnetic storage devices for example hard diskdrives HDD and/or DVDs. The HDD may be a mini HDD that includes one ormore platters having a diameter that is smaller than approximately 1.8″.The set top box 738 may be connected to memory 742 such as RAM, ROM, lowlatency nonvolatile memory such as flash memory and/or other suitableelectronic data storage. The set top box 738 also may supportconnections with a WLAN via a WLAN network interface 743.

Referring now to FIG. 7E, the present invention can be implemented in amedia player 744. The present invention may implement either or bothsignal processing and/or control circuits, which are generallyidentified in FIG. 7E at 745, a WLAN interface and/or mass data storageof the media player 744. In some implementations, the media player 744includes a display 746 and/or a user input 747 such as a keypad,touchpad and the like. In some implementations, the media player 744 mayemploy a graphical user interface (GUI) that typically employs menus,drop down menus, icons and/or a point-and-click interface via thedisplay 746 and/or user input 747. The media player 744 further includesan audio output 748 such as a speaker and/or audio output jack. Thesignal processing and/or control circuits 745 and/or other circuits (notshown) of the media player 744 may process data, perform coding and/orencryption, perform calculations, format data and/or perform any othermedia player function.

The media player 744 may communicate with mass data storage 749 thatstores data such as compressed audio and/or video content in anonvolatile manner. In some implementations, the compressed audio filesinclude files that are compliant with MP3 format or other suitablecompressed audio and/or video formats. The mass data storage may includeoptical and/or magnetic storage devices for example hard disk drives HDDand/or DVDs. The HDD may be a mini HDD that includes one or moreplatters having a diameter that is smaller than approximately 1.8″. Themedia player 744 may be connected to memory 750 such as RAM, ROM, lowlatency nonvolatile memory such as flash memory and/or other suitableelectronic data storage. The media player 744 also may supportconnections with a WLAN via a WLAN network interface 751. Still otherimplementations in addition to those described above are contemplated.

Embodiments of the invention can be implemented in digital electroniccircuitry, or in computer hardware, firmware, software, or incombinations of them. Apparatus of the invention can be implemented in acomputer program product tangibly embodied in a machine-readable storagedevice for execution by a programmable processor; and method steps ofthe invention can be performed by a programmable processor executing aprogram of instructions to perform functions of the invention byoperating on input data and generating output. The invention can beimplemented advantageously in one or more computer programs that areexecutable on a programmable system including at least one programmableprocessor coupled to receive data and instructions from, and to transmitdata and instructions to, a data storage system, at least one inputdevice, and at least one output device. Each computer program can beimplemented in a high-level procedural or object-oriented programminglanguage, or in assembly or machine language if desired; and in anycase, the language can be a compiled or interpreted language. Suitableprocessors include, by way of example, both general and special purposemicroprocessors. Generally, a processor will receive instructions anddata from a read-only memory and/or a random access memory. Generally, acomputer will include one or more mass storage devices for storing datafiles; such devices include magnetic disks, such as internal hard disksand removable disks; magneto-optical disks; and optical disks. Storagedevices suitable for tangibly embodying computer program instructionsand data include all forms of non-volatile memory, including by way ofexample semiconductor memory devices, such as EPROM, EEPROM, and flashmemory devices; magnetic disks such as internal hard disks and removabledisks; magneto-optical disks; and CD-ROM disks. Any of the foregoing canbe supplemented by, or incorporated in, ASICs (application-specificintegrated circuits).

A number of implementations of the invention have been described.Nevertheless, it will be understood that various modifications may bemade without departing from the spirit and scope of the invention.Accordingly, other implementations are within the scope of the followingclaims.

What is claimed is:
 1. A first device of a plurality of devices in anetwork, wherein the first device is configured to operate as a mediatransmitter or a media receiver among the plurality of devices in thenetwork, the first device comprising: a memory configured to store aplaylist of media files accessible to the first device, wherein theplaylist of media files indicates which ones of the media files arestored in the first device and which ones of the media files are notstored in the first device; and an output circuit configured to receivethe playlist of media files from one or more second devices of theplurality of devices in the network, wherein responsive to a first mediafile in the playlist of media files being stored in the first device,the first device is configured to operate as a media transmitter, andwherein the output circuit is configured to control transmitting of thefirst media file from the first device to the one or more second devicesof the plurality of devices in the network, and wherein responsive tothe first media file in the playlist of media files not being stored inthe first device, the first device is configured to (i) transfer controlof transmitting from the first device to a selected one of the seconddevices that is storing the first media file, and (ii) operate as amedia receiver to receive the first media file from the selected one ofthe second devices that is storing the first media file.
 2. The firstdevice of claim 1, wherein the output circuit is configured to transmitthe playlist of media files from the first device to the one or moresecond devices of the plurality of devices in the network.
 3. The firstdevice of claim 1, further comprising a storage device configured tostore the media files indicated by the playlist as being stored in thefirst device.
 4. The first device of claim 1, further comprising anauthentication circuit configured to authenticate each of the one ormore second devices of the plurality of devices in the network prior totransmitting the first media file from the first device to the one ormore second devices of the plurality of devices in the network.
 5. Thefirst device of claim 4, wherein the authentication circuit isconfigured to limit a number of the one or more second devices of theplurality of devices in the network according to a throughput of thenetwork.
 6. The first device of claim 1, further comprising a controlcircuit configured to modify an order of play of the media files in theplaylist of media files according to votes received from the one or moresecond devices of the plurality of devices in the network.
 7. The firstdevice of claim 1, wherein the network comprises an ad-hoc network, andwherein the first device is configured to act as a master of thenetwork.
 8. The first device of claim 7, wherein responsive to the firstmedia file in the playlist of media files not being stored in the firstdevice, to transfer control of transmitting the first media file, theoutput circuit is configured to transmit a token to a second device inthe network that is storing the media file.
 9. A method of operating afirst device of a plurality of devices in a network, wherein the firstdevice is configured to operate as a media transmitter or a mediareceiver among the plurality of devices in the network, the methodcomprising: receiving, at the first device, a playlist of media filesfrom one or more second devices of the plurality of devices in thenetwork; storing, in the first device, the playlist of media files,wherein the playlist of media files indicates which ones of the mediafiles are stored in the first device and which ones of the media filesare not stored in the first device; responsive to a first media file inthe playlist of media files being stored in the first device, operatingas a media transmitter to control transmitting of the first media filefrom the first device to the one or more second devices of the pluralityof devices in the network; and responsive to the first media file in theplaylist of media files not being stored in the first device, (i)transferring control of transmitting from the first device to a selectedone of the second devices that is storing the first media file, and (ii)operating as a media receiver to receive the first media file from theselected one of the second devices that is storing the first media file.10. The method of claim 9, further comprising transmitting the playlistof media files from the first device to the one or more second devicesof the plurality of devices in the network.
 11. The method of claim 9,further comprising authenticating each of one or more second devices ofthe plurality of devices in the network prior to transmitting the firstmedia file from the first device to the one or more second devices ofthe plurality of second devices in the network.
 12. The method of claim11, further comprising limiting a number of the one or more seconddevices of the plurality of devices in the network according to athroughput of the network.
 13. The method of claim 9, further comprisingmodifying an order of play of the media files in the playlist of mediafiles according to votes received from the one or more second devices ofthe plurality of devices in the network.
 14. The method of claim 9,further comprising configuring the first device as a master of thenetwork.
 15. The method of claim 14, further comprising, to transfercontrol of transmitting the first media file, transmitting a token tothe second device that is storing the media file.